package br.com.sgpv2.service.indicadoreconomico;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import br.com.sgpv2.controler.NegocioExeception;
import br.com.sgpv2.entity.indicadoreconomico.IndicadorEconomico;
import br.com.sgpv2.hibernate.indicadoreconomico.IndicadorEconomicoRepository;

@Service(value = "indicadorEconomicoService")
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class IndicadorEconomicoServiceImpl implements IndicadorEconomicoService {

	@Autowired
	IndicadorEconomicoRepository indicadorEconomicoRepository;

	/** {@inheritDoc} */
	@Override
	public void alterar(IndicadorEconomico indicadorEconomico) {
		indicadorEconomicoRepository.alterar(indicadorEconomico);
	}

	/** {@inheritDoc} */
	@Override
	public IndicadorEconomico buscar(Integer pk) throws NegocioExeception {
		return indicadorEconomicoRepository.buscar(pk);
	}

	/** {@inheritDoc} */
	@Override
	public List<IndicadorEconomico> consultarPorMesAno(String mes, String ano) {
		return indicadorEconomicoRepository.consultarPorMesAno(mes, ano);
	}

	/** {@inheritDoc} */
	@Override
	public List<IndicadorEconomico> listar() throws Exception {
		return indicadorEconomicoRepository.listar();
	}

	/** {@inheritDoc} */
	@Override
	public void remover(IndicadorEconomico indicadorEconomico) throws Exception {
		indicadorEconomicoRepository.excluir(indicadorEconomico);
	}

	/** {@inheritDoc} */
	@Override
	public void salvar(IndicadorEconomico indicadorEconomico) throws Exception {
		indicadorEconomicoRepository.salvar(indicadorEconomico);
	}

	/** {@inheritDoc} */
	@Override
	public void saveOrUpdate(IndicadorEconomico indicadorEconomico) {
		indicadorEconomicoRepository.saveOrUpdate(indicadorEconomico);
	}

	/**
	 * Recupera o DAO de Indicador Economico.
	 */
	public IndicadorEconomicoRepository getIndicadorEconomicoRepository() {
		return indicadorEconomicoRepository;
	}

	/**
	 * Configura o DAO de Indicador Economico.
	 */
	public void setIndicadorEconomicoRepository(
			IndicadorEconomicoRepository indicadorEconomicoRepository) {
		this.indicadorEconomicoRepository = indicadorEconomicoRepository;
	}

}
